package com.battlebardgames.simplejavacache.key;

import java.lang.reflect.Method;

/**
 * An interface for cache key generation
 * @author Thomas Cashman
 */
public interface ICacheKeyProvider {
	/**
	 * Returns a cache key for an object instance, method and parameters
	 * @param object An object instance
	 * @param method The method being called
	 * @param parameters The called method's parameters
	 * @return A unique cache key
	 */
	public String getCacheKey(Object object, Method method, Object [] parameters);
	
	/**
	 * Returns a cache key for an object instance
	 * @param object An object instance
	 * @return A unique cache key
	 */
	public String getCacheKey(Object object);
}
